﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ComunesMGI.DataTypes
{
    [Serializable]
    public class DataSistema
    {
        private int _codigo;
        private string _nombre;
        private string _sitio;
        private string _urlWS;
        private int _codCliente;
        List<DataCampo> _campos;

        public DataSistema(int codigo, string nombre, string sitio, int codCliente, string urlWS)
        {
            this._codigo = codigo;
            this._nombre = nombre;
            this._sitio = sitio;
            this._codCliente = codCliente;
            this._urlWS = urlWS;
        }

        public DataSistema(string nombre, string sitio, int codCliente, string urlWS)
        {
            this._nombre = nombre;
            this._sitio = sitio;
            this._codCliente = codCliente;
            this._urlWS = urlWS;
        }


        public int Codigo
        {
            get { return _codigo; }
            set { _codigo = value; }
        }

        public string Nombre
        {
            get { return _nombre; }
            set { _nombre = value; }
        }

        public string Sitio
        {
            get { return _sitio; }
            set { _sitio = value; }
        }

        public string UrlWS
        {
            get { return _urlWS; }
            set { _urlWS = value; }
        }

        public int CodCliente
        {
            get { return _codCliente; }
            set { _codCliente = value; }
        }

        public List<DataCampo> Campos
        {
            get { return _campos; }
            set { _campos = value; }
        }

        public override bool Equals(Object obj)
        {
            DataSistema sistema = (DataSistema)obj;
            return ((this._codigo == sistema._codigo) && (this._nombre.Equals(sistema._nombre)) 
                     && (this._sitio == sistema._sitio)) && (this._urlWS==sistema._urlWS);

        }

        public override int GetHashCode()
        {

            int hash = 0;
            
            hash ^= this._codigo.GetHashCode();

            if(this._nombre!=null)
                hash ^= this._nombre.GetHashCode();
            if(this._sitio!=null)
                hash ^= this._sitio.GetHashCode();
            if(this._urlWS!=null)
                hash ^= this._urlWS.GetHashCode();
            hash ^= this._codCliente.GetHashCode();
            if(_campos!=null)
                hash ^= this._campos.GetHashCode();
            return hash;

        }
        
    }
}
